The present invention relates to a run length encoding and decoding process and apparatus for transmitting facsimile and similar binary data in compressed form.
A number of run length encoding systems have been developed including variable length block encoding, Wyle encoding, Huffman encoding, etc. The variable length block and Wyle encoding systems utilize flag bits to indicate the length of a run length code. These flag bits are either mixed with the bits of the run length code as in the case of variable length block encoding or are separate from the run length code as in the case of the Wyle encoding system. These flag bits account for between 1/3 and 1/2 of the data transmitted. The Huffman encoding system does not use flag bits but instead assigns a unique binary code to each run length, with the shorter codes corresponding to the most frequently occuring run lengths.
All of these prior art encoding systems suffer from the drawback that where the same run length is encountered several times in succession, the entire run length code including the flag bits where applicable is transmitted each time. If there is no change in run length, the flag bits are redundant. Likewise, the flag bits are transmitted when the run length decreases. This high percentage of redundant data greatly limits the degree of data compression and transmission speed.